import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;

import javax.swing.JPanel;

@SuppressWarnings("serial")
/*Clase Encarga de pintar en la pantalla cada ciclo del juego*/
public class GamePanel extends JPanel {
	
	Juego juego;	

	static final int tamanox = 400;
	static final int tamanoy = 600;
	static final int celdatamx = 53;
	static final int celdatamy = 79;
	static final int offsetx = 5;
	static final int offsety = 5;
	
	Image gameOver = Toolkit.getDefaultToolkit().getImage("images/gameOver.png");
	Image ganaste = Toolkit.getDefaultToolkit().getImage("images/ganaste.png");
	Image intentaNuevamente = Toolkit.getDefaultToolkit().getImage("images/intentaNuevamente.png"); 
	
	VistaJugador vistaJugador;
	VistaCorazones vistaCorazones;
	
	GamePanel(Juego juego){
		this.juego = juego;		
	}
	/*Llamado en cada ciclo para pintar la pantalla*/
	@SuppressWarnings("static-access")
	public void paint(Graphics G){

		vistaJugador = new VistaJugador(juego.getJugador());
		vistaCorazones = new VistaCorazones(juego.getCorazonesVivos());
	
		//Constantes
		G.setColor(Color.white);
		G.fillRect(0, 0, tamanox, tamanoy);
		//pintarCeldas(G);
		vistaCorazones.pintar(G);
		vistaJugador.pintar(G);
	
		pintarCarteles(G);
		//pintarInformacion(G);	
	}	
	
	private void pintarCeldas(Graphics G) {
		for(int i =0; i< juego.xMax;i++){
			for(int j =0; j< juego.yMax;j++){
				G.setColor(Color.white);
				G.fillRect(i*celdatamx+offsetx, j*celdatamy+offsety, celdatamx,celdatamy);
				G.setColor(Color.black);
				G.drawRect(i*celdatamx+offsetx, j*celdatamy+offsety, celdatamx,celdatamy);
			}
		}
	}
	
	private void pintarCarteles(Graphics G) {
		
		Jugador jugador = juego.getJugador();
		boolean jugadorVive = jugador.getVida();
		
		if (!jugadorVive){
			G.drawImage(gameOver, 0, 200, 414, 123, null);
		} else if (jugador.obtenerPuntaje() > 3){
			G.drawImage(ganaste,  0, 200, 414, 123, null);
		} else {
			G.drawImage(intentaNuevamente,  0, 200, 414, 123, null);	
		}
		
	}
}